<template>
  <view class="page">
    <!-- 表单组件 -->
    <mes-form :mesForm="mesFormTop"></mes-form>
    <mes-tip type="examine" v-if="status == '1'"></mes-tip>
    <!-- 商品列表  -->
    <mes-goods
    ref="mesGoodsRef"
      :form="mesGoodsForm"
      @edit="editGoods"
      @delete="delGoods"
      :showDel="false"
    >
    </mes-goods>
    <!-- 备注 -->
    <mes-form :mesForm="remark"></mes-form>

    <!-- 重置 -->
    <mes-button :type="3" :form="buttonForm"></mes-button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      plan_code:'',//当前生产单
      worker: '', //工人名字
      id: '', //当前数据id
      status: '', //当前数据状态
      mesGoodsForm: {
        numberUnitField: 'unit_name', //数量单位
        priceField: 'purchase' //单价
      },
      remark: {
        top: 20,
        row: {
          remark: ''
        },
        items: [
          {
            title: '备注',
            slots: {
              field: 'remark'
            }
          }
        ]
      },
      mesFormTop: {
        top: 20,
        row: {},
        items: [
          {
            title: '生产计划',
            slots: {
              field: 'plan_code'
            }
          },
          {
            title: '生产单号',
            slots: {
              field: 'purchase_code'
            }
          },
          {
            title: '单据日期',
            slots: {
              field: 'purchase_time'
            }
          },
          {
            title: '开工时间',
            slots: {
              field: 'work_time'
            }
          },
          {
            title: '完工时间',
            slots: {
              field: 'finish_time'
            }
          },
          {
            title: '车间',
            slots: {
              field: 'workshop_id'
            }
          },
          {
            title: '生产工人',
            slots: {
              field: 'work_name'
            }
          }
        ]
      },
      buttonForm: {
        leftEvent: () => {
          if (this.status == '1') {
            return this.$tools.toast('不能删除已审核单据')
          }
          let that=this
          uni.showModal({
            title: '提示',
            content: '是否确认删除？',
            success: function (r) {
              if (r.confirm) {
                that.$api.prod.productions
                  .del({ id: that.id })
                  .then((res) => {
                    if(res.code == 200){
                       that.$tools.successBack(res.msg)
                    }
                  })
              } else if (r.cancel) {
                // that.$tools.successBack('用户取消删除')
              }
            }
          })
        },
        leftText: '删除',
        rightEvent: () => {
          if (this.status == '1') {
            return uni.showToast({
              title: '不能编辑已审核单据',
              icon: 'none',
              mask: true
            })
          }
          let obj = {
            name: 'details',
            id: this.id,
            plan_code: this.mesFormTop.row.plan_code
          }
          obj = JSON.stringify(obj)
          // 编辑
          uni.navigateTo({
            url: `/pages/home/productions/edit?obj=${obj}`
          })
        },
        rightText: '编辑'
      }
    }
  },
  methods: {
    //删除商品
    delGoods(i) {
      getApp().globalData.goods.list.splice(i, 1)
    },
    //详情页商品
    editGoods(i) {
      let obj = {
        name: 'details',
        index: i
      }
      obj = JSON.stringify(obj)
      uni.navigateTo({
        url: `/pages/home/productions/goods?obj=${obj}`
      })
    },
    // 获取数据
    async getData(option) {
      const res = await this.$api.prod.productions.getdetail({ id: option })
      if (res.code == 200) {
        let info_list = []
        if (res.data.info_list && res.data.info_list.length) {
          res.data.info_list.forEach((item) => {
            info_list.push({
              // 编辑商品用到的（提交参数）
              // 商品编号（商品详情获取或者通用->商品价格接口获取）
              goods_code: item.goods_code,
              //  商品规格型号
              goods_note: item.goods_note === null,
              //  商品单位ID（资料->商品获取商品单位列表，用户选择）
              goods_unit: item.unit_id,
              //  数量（默认为1，用户修改）
              number: item.number,
              //  基本单位ID（商品详情获取或者通用->商品价格接口获取）
              default_unit: item.default_unit,
              //  基本数量（默认为1，多单位时需要换算，或者通过通用->价格变动接口格式化）
              basic_nmber: item.basic_nmber,
              //  商品单价（通用->商品价格获取）
              purchase: item.purchase,
              //  金额
              money: item.money,
              // 编辑商品用到的（展示参数）
              default_unit_name: item.default_unit_name, //基本单位名称
              // mes-goods显示中用到的
              unit_name: item.unit_name, //数量单位
              goods_image: item.goods_image, //图片
              goods_name: item.goods_name //商品名称
            })
          })
        }
        getApp().globalData.goods.list = info_list
         this.$refs.mesGoodsRef.getGoods()
        this.mesFormTop.row = {
          code_type: 1, //单据类型（1：加工单，2：委外加工单）
          plan_code: res.data.plan_code ||this.plan_code, //生产计划单号
          purchase_code: res.data.purchase_code, //单据编号
          purchase_time: res.data.purchase_time, //单据时间
          work_time: res.data.work_time, //开工时间
          finish_time: res.data.finish_time, //完工时间
          workshop_id: res.data.workshop_id, ////车间ID
          work_id: res.data.work_id //生产工人id
        }
        this.$api.source.staff_member
          .index({
            page: '-1',
            status: 1
          })
          .then((re) => {
            if (re.code == 200) {
              let name = re.data.list.filter((item) => {
                return this.mesFormTop.row.work_id == item.id
              })
              this.mesFormTop.row.work_name = name[0].name
            }
          })
        this.remark.row = {
          remark: res.data.remark
        }
      }
    }
  },
  onShow(){
  this.getData(this.id)
  },
  onLoad(option) {
    let newObj = JSON.parse(option.obj)
    this.id = newObj.id
    this.status = newObj.status
    this.plan_code= newObj.plan_code
  }
}
</script>

<style lang="less" scoped>
</style>
